<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1.实现一个函数，输入2个数字，函数调用的时候返还  偶数和？
        // function jiSuan(num1, num2) {
        //     var res = 0
        //     if (num1 < num2) {
        //         for (var i = num1; i < num2; i++) {
        //             if (i % 2 == 0) {
        //                 res += i
        //             }
        //         }
        //     } else {
        //         for (var i = num2; i < num1; i++) {
        //             if (i % 2 == 0) {
        //                 res += i
        //             }
        //         }
        //     }
        //     console.log(res)
        //     return res
        // }

        // var res1 = jiSuan(10, 1)
        // console.log(res1)


        // 1.需求：程序逻辑上的重点  1.分支；2.循环  先组织逻辑
        // 2.函数封装（逻辑的基础上套一层壳） -->返还（return）（外边需不需要用函数内的一些结果）
        // 3.考虑参数问题（活：变量）；

        //一、 特例:1-10 --->换成变量
        // var total =0;
        // for(var i=2;i<11;i++){
        //     // 判断1-10之间的偶数
        //     if(i%2===0){
        //         // 这个位置就是所有的1-10之间的偶数
        //         // console.log(i);
        //         // 求所有偶数的和 --->一定要等到循环结束才能拿到结果
        //         total+=i;
        //     }
        // }
        // console.log(total);
        // 二、换成变量
        // 变量定义放在统一位置，方便维护；
        // var a = 1;
        // var b = 10;
        // var total =0;
        // for(var i=a;i<b;i++){
        //     // 判断1-10之间的偶数
        //     if(i%2===0){
        //         // 这个位置就是所有的1-10之间的偶数
        //         // console.log(i);
        //         // 求所有偶数的和 --->一定要等到循环结束才能拿到结果
        //         total+=i;
        //     }
        // }
        // 三封装 ：一个function 包裹起来; 逻辑可以复用
        //     function fn(a,b) {
        //         // var a = 1;
        //         // var b = 10;
        //         var total = 0;
        //         for (var i = a; i < b; i++) {
        //             // 判断1-10之间的偶数
        //             if (i % 2 === 0) {
        //                 // 这个位置就是所有的1-10之间的偶数
        //                 // console.log(i);
        //                 // 求所有偶数的和 --->一定要等到循环结束才能拿到结果
        //                 total += i;
        //             }
        //         }
        //         // 第一天需求：获取所有偶数的和
        //         // 第二天需求：获取所有偶数的和且加1；
        //         console.log(total);
        //     }
        //     // 第一天需求：获取所有偶数的和
        //    var val =  fn(1,10);
        //     // 第二天需求：获取所有偶数的和且加1；
        //    var val2 =  fn(2,11);


        //四、 是否需要函数内部的结果 ，如果需要就 返还结果
        //    parseInt()
        // function fn(a, b) {
        //     // var a = 1;
        //     // var b = 10;
        //     var total = 0;
        //     for (var i = a; i < b; i++) {
        //         // 判断1-10之间的偶数
        //         if (i % 2 === 0) {
        //             // 这个位置就是所有的1-10之间的偶数
        //             // console.log(i);
        //             // 求所有偶数的和 --->一定要等到循环结束才能拿到结果
        //             total += i;
        //         }
        //     }
        //     // 第一天需求：获取所有偶数的和
        //     // 第二天需求：获取所有偶数的和且加1；
        //     // console.log(total+1);
        //     return total;
        // }
        // // 第一天需求：获取所有偶数的和
        // var val = fn(1, 10);
        // console.log(val);
        // // 第二天需求：获取所有偶数的和且加1；
        // var val2 = fn(2, 11);
        // console.log(val2 + 1);
        
        // 五、考虑多种情况(测试)？（修复bug）;
        function fn(a, b) {
            // var a = 1;
            // var b = 10;
            // fn(10,1) 调用出现问题
            if(a>b){
                var c = a;
                a = b;
                b = c;
            }
            var total = 0;
            for (var i = a; i < b; i++) {
                // 判断1-10之间的偶数
                if (i % 2 === 0) {
                    // 这个位置就是所有的1-10之间的偶数
                    // console.log(i);
                    // 求所有偶数的和 --->一定要等到循环结束才能拿到结果
                    total += i;
                }
            }
            // 第一天需求：获取所有偶数的和
            // 第二天需求：获取所有偶数的和且加1；
            // console.log(total+1);
            return total;
        }
        console.log(fn(1,10));
        // 如果出现 bug
        console.log(fn(10,1));
    </script>
</body>

</html>